home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / v cisle / autoit / autoit-v3.2.0.1-setup.exe / Examples / Helpfile / DllStructGetData.au3 < prev    next >
Encoding:
Text File  |  2006-06-17  |  1.0 KB  |  42 lines

  1. #cs
  2. From MSDN:
  3. typedef struct _OSVERSIONINFO
  4.   DWORD dwOSVersionInfoSize;    //1
  5.   DWORD dwMajorVersion;         //2
  6.   DWORD dwMinorVersion;         //3
  7.   DWORD dwBuildNumber;             //4
  8.   DWORD dwPlatformId;             //5
  9.   TCHAR szCSDVersion[ 128 ];     //6
  10. } OSVERSIONINFO; 
  11. #ce
  12. $p    = DllStructCreate("dword;dword;dword;dword;dword;char[128]")
  13.  
  14. ;think of this as p->dwOSVersionInfoSize = sizeof(OSVERSIONINFO)
  15. DllStructSetData($p, 1, DllStructGetSize($p))
  16.  
  17. ;make the DllCall
  18. $ret = DllCall("kernel32.dll","int","GetVersionEx","ptr",DllStructGetPtr($p))
  19.  
  20. if Not $ret[0] Then
  21.     MsgBox(0,"DllCall Error","DllCall Failed")
  22.     exit
  23. EndIf
  24.  
  25. ;get the returned values
  26. $major        = DllStructGetData($p,2)
  27. $minor        = DllStructGetData($p,3)
  28. $build        = DllStructGetData($p,4)
  29. $platform    = DllStructGetData($p,5)
  30. $version    = DllStructGetData($p,6)
  31.  
  32. ;free the struct
  33. $p =0
  34.  
  35. msgbox(0,"","Major: " & $major & @CRLF & _
  36.             "Minor: " & $minor & @CRLF & _
  37.             "Build: " & $build & @CRLF & _
  38.             "Platform ID: " & $platform & @CRLF & _
  39.             "Version: " & $version)
  40.  
  41.